function Get-ArmTemplateFolder {
    [CmdletBinding()]
    [OutputType([string])]
    param ()

    # Define mandatory paths for Arm_template folder.
    $mandatoryFiles = @(
        (Read-Config).ArmTemplateFileName
    )

    <#
        Take an educated guess.
    #>

    # Attempt to locate arm_template files.
    $armTemplateFolder = Join-Path -Path $(Get-Location) -ChildPath 'arm_template\'

    # Check if the folder is missing any files.
    $missingPaths = Get-MissingFiles -Folder $armTemplateFolder -Files $mandatoryFiles

    # Folder found if nothing is missing.
    if ($missingPaths.Count -eq 0) {
        Write-Verbose "Arm template folder located."
        return $armTemplateFolder
    }


    <#
        Ask user.
    #>

    do {
        # Ask for Arm_template folder.
        Write-Host # Newline.
        Write-Host "Full path to the arm_template folder is needed. This folder was included in the downloaded folder."
        $armTemplateFolder = Read-Host -Prompt 'Arm_template folder'
    
        # Check if the folder is missing any files.
        $missingPaths = Get-MissingFiles -Folder $armTemplateFolder -Files $mandatoryFiles
        
        # Show missing folders if necessary.
        if ($missingPaths.Count -eq 0) {
            Write-Verbose "Arm template folder located."
            return $armTemplateFolder
        }
    
        # List down missing files.
        Write-Warning 'The path you suggested does not contain the necessary files:'
        foreach ($path in $missingPaths) {
            Write-Host $path
        }
    
        Write-Warning 'Try Again.'
    } while ($true)
}